home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib06.dsk / DOS REMOVER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  65 lines

  1. 1  REM  *******************************
  2. 2  REM  *    THE DOS REMOVER          *
  3. 3  REM  *   BY TONY S. DAHBURA        *
  4. 4  REM  *   COPYRIGHT (C) 1981        *
  5. 5  REM  *   BY MICRO-SPARC INC        *
  6. 6  REM  *   LINCOLN, MA  01773        *
  7. 7  REM  *******************************
  8. 10  TEXT : HOME : CLEAR :D$ =  CHR$(4)
  9. 20  REM  POKE IN IOB TABLE
  10. 30  RESTORE : FOR J = 768 TO 800: READ I: POKE J,I: NEXT J
  11. 40  DATA  169,3,160,10,32,217,3,96,0,0,1,96,1,0,0,0,27,3,0,32,0,0,1,0,0,96,1,0,1,239,216,0,0
  12. 50  PRINT "     DOS REMOVER FOR 16 SECTOR DISKS": PRINT "             BY T. DAHBURA"
  13. 60  PRINT : PRINT 
  14. 70  PRINT "THIS PROGRAM WILL REMOVE THE DOS FROM": PRINT "TRACKS $0-$2 AND MAKE THEM AVAILABLE": PRINT "FOR DATA STORAGE.": PRINT 
  15. 80  POKE 34,8: HOME 
  16. 90  PRINT "ENTER DISK DRIVE SLOT?";
  17. 100  GET SL$:SL =  VAL(SL$): IF SL <1  OR SL >7  THEN 100
  18. 110  PRINT SL$
  19. 120  PRINT : PRINT "ENTER DISK DRIVE NUMBER?";
  20. 130  GET SD$:SD =  VAL(SD$): IF SD < >1  AND SD < >2  THEN 130
  21. 140  HOME : PRINT "    SLOT  ";SL: PRINT "    DRIVE ";SD: POKE 34,11: HOME 
  22. 160  REM  POKE SLOT AND DRIVE
  23. 170  POKE 779,SL *16: POKE 793,SL *16: POKE 780,SD: POKE 794,SD
  24. 180  REM  VOLUME OF 0
  25. 190  POKE 781,0: POKE 792,0
  26. 200  REM  CLEAR ERROR
  27. 210  POKE 791,0
  28. 220  REM  SET TO READ, CODE=1
  29. 230  POKE 790,1
  30. 240  PRINT : PRINT "INSERT DISK IN DESIGNATED DRIVE": PRINT "AND PRESS <SPACE> TO MODIFY, OR": PRINT "<RETURN> TO EXIT": HTAB 20
  31. 250  GET A$: IF A$ < > CHR$(32)  AND A$ < > CHR$(13)  THEN 250
  32. 260  IF A$ =  CHR$(13)  THEN  TEXT : END 
  33. 270  PRINT 
  34. 280  HOME : PRINT "READING VTOC, 17,0"
  35. 290  POKE 782,17: POKE 783,0: POKE 786,0: POKE 787,32
  36. 300  CALL 768
  37. 310  GOSUB 520: REM  CHECK FOR ERROR
  38. 320  REM  MARK VTOC LOCATIONS $3C-$43
  39. 330  REM  AS BEING EMPTY
  40. 340  FOR X = 60 TO 67  STEP 4: POKE 8192 +X,255: POKE 8193 +X,255: NEXT X
  41. 350  HOME : PRINT "WRITING VTOC"
  42. 360  POKE 790,2: CALL 768: GOSUB 520
  43. 370  HOME : PRINT "CLEARING TRACKS 1 AND 2"
  44. 380  FOR X = 8192 TO 8448: POKE X,0: NEXT X: REM  MAKE A PAGE OF 0'S TO STORE WHERE DOS WAS
  45. 390  POKE 786,0: POKE 787,32: REM  BUFFER
  46. 400  POKE 790,2: REM  SET TO WRITE, CODE=2
  47. 410  FOR X = 1 TO 2
  48. 420  FOR Y = 0 TO 15: REM  CHANGE TO 12 FOR DOS 3.2
  49. 430  POKE 782,X: REM  TRACK
  50. 440  POKE 783,Y: REM  SECTOR
  51. 450  CALL 768: REM  EXECUTE WRITE
  52. 460  GOSUB 520: REM  CHECK FOR ERROR
  53. 470  NEXT Y: NEXT X
  54. 480  HOME : PRINT : PRINT "ANOTHER?";
  55. 490  GET A$: IF A$ < >"Y"  AND A$ < >"N"  THEN 490
  56. 500  PRINT A$: IF A$ = "Y"  THEN  HOME : GOTO 160
  57. 510  TEXT : END 
  58. 520  IF  PEEK(791) = 0  THEN  RETURN 
  59. 530 E =  PEEK(791)
  60. 540  IF E = 16  THEN  PRINT : PRINT "DISK IS WRITE PROTECTED"
  61. 550  IF E = 32  THEN  PRINT : PRINT "VOLUME MISMATCH"
  62. 560  IF E = 64  THEN  PRINT : PRINT "DRIVE ERROR"
  63. 570  IF E = 128  THEN  PRINT : PRINT "READ ERROR"
  64. 580  IF E < >16  AND E < >32  AND E < >64  AND E < >128  THEN  POKE 791,0: RETURN 
  65. 590  PRINT  CHR$(7); CHR$(7): TEXT : END